In the present description, the term “Network” designates an ordinary network, based on the Internet Protocol (IP) technology. This network can be a Local Area Network (LAN), but also an Enterprise (private) Intranet or even the (public) Internet. The term “Node” designates the computer systems in the network routing the communications, such as routers, and, also, the computer systems exchanging information on the network, such as workstations and servers.
In a network, nodes must be able to exchange information with other nodes of a same group. For instance, the broadcast of a same information to multiple nodes located in different locations is called “Multicast”. In a group of N nodes called a Multicast group as illustrated in FIG. 1, each node (101) needs to communicate with the (N−1) other nodes. To do this, each node establishes a session with each other node (100). Usually in IP networks, the Transmission Control Protocol (TCP) is used to communicate between nodes because this protocol allows a reliable transport of data through sessions and takes care of the flow control. This is not the case with the transport protocol called UDP (User Datagram Protocol) which is based on the best effort and which does not provide any session mechanism.
If a node, within a group of N nodes, wants to communicate information to all the other nodes of its group, it requires N−1 TCP sessions. If all the nodes need to communicate together in a full mesh configuration, N×(N−1)/2 TCP sessions are required. It is important to note that since a TCP session is bidirectional, the required number of sessions is N×(N−1)/2 and not N×(N−1).
The number of sessions can be considerable in a network comprising hundreds or thousands of nodes. It can results an important overhead with a significant impact in term of bandwidth consumption in the network and resource (data processing and memory) utilization in each node. In each node, the establishment the TCP sessions requires data processing resources and the maintenance of these TCP sessions requires memory in particular to store the context of the TCP sessions (TCP Control Block).
In absence of synchronisation at the application level, the nodes can exchange the same piece of information on all the TCP sessions at the same time (communication any to any). This is bandwidth consuming at the network level and resource consuming at the level of each node. An example of this scenario is the exchange of routing information between routers. Each router broadcast routing information to the other routers either periodically or when a change occurs, depending on the routing protocol used in the network. Another example is the synchronisation of multiple servers in a distributed database.
Several solutions exist to limit the number of sessions between nodes. A solution illustrated in FIG. 2, is to select a “Rendezvous Point”, or a central node, to which all other nodes are connected. The central node (200) is responsible for distributing the information to all the other nodes in the network. This configuration called “Star network” reduces the number of connections (N−1 sessions) but the main drawback is due to the fact that the central node is the weakest point of the network. Generally, the central node is duplicated by means of a backup central node (201). This configuration called “Dual star network”, requires (N−1)+(N−2) connections.
Note, the central node (200) is connected to all other nodes including the backup central node (201). The result is the establishment of N−1 TCP sessions. The addition of a second star configuration based on the backup central node (201) requires another N−1 TCP sessions. However, since a TCP session already exists between central node (200) and backup central node (201), this session does not need to be duplicated. In conclusion, the number of sessions required in a dual star configuration is (N−1)+(N−2)=2×N−3
Accordingly, it is an object of the invention to reduce bandwidth utilization in an IP network comprising inter-communicating nodes, to reduce the resource consumption of inter-communicating nodes, and to define several groups of inter-communicating nodes in an IP network.